package com.hu.hutool.config;

import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.List;

/**
 * @Author CazCen
 * @Date 2021/11/19 0:18
 */
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
    /**
     * 如果你使用 Spring MVC 来构建 Web 应用并对性能有较高的要求的话，
     * 可以使用 Fastjson 提供的FastJsonHttpMessageConverter 来替换
     * Spring MVC 默认的 HttpMessageConverter 以提高 @RestController
     *
     * @ResponseBody @RequestBody 注解的 JSON序列化速度。
     */

    @Autowired
    HandlerInterceptorTest handlerInterceptorTest;

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();

        converters.add(0, converter);
    }

    /**
     * 将自定义拦截器注入进行注册
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(handlerInterceptorTest);
    }
}
